home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
yuck_200.arc
/
YUCK.DOC
< prev
next >
Wrap
Text File
|
1990-10-29
|
41KB
|
851 lines
Note: Formatted for 66 lines/page, 80 cols/line.
Yuck! A Pointnet Converter
Yet-another Useless Conversion Kludge
Yuck! is a program designed to produce a FrontDoor- and Trap-
Door-compatible pointlist from the usual MakeNL fakenet format, or
from a FIDOUSER.LST-style file. For example, all Austrian nodes
share a common pointlist which is generated by MakeNL and looks
approximately like this:
Host,3000,<data for bossnode 310/3>
,1,<data for 1st point of 310/3>
,2,...
Host,3210,<data for 310/11>
,1,<data for 310/11.1>
Then, of course, there are the perverts among us who want to
use a list in the FIDOUSER.LST format:
Kasza, Felix 310/11.1
Homrighausen, Jo 3:632/308.3
Bonehead, Very hard 7:48/20.1
I guess you get the idea. Now, FroDo doesn't exactly like
fake nets; it would prefer a pointlist like this:
Zone,2,...
Host,310,...
,3,<data for bossnode 310/3>
Point,1,<data for point #1>
Point,2,...
,11,<data for 310/11>
Point,1,...
There are, however, some who'd even want their FroDo to use
the all-new singing and dancing pointlist format:
Boss,2:310/3
,1,<data for point #1>
,2,...
Boss,2:310/11
,1,...
Yuck! 2.00/a-1 02-10-90 Page 2
Then, there are those LoTek systems. Fakenet addressing is a
thing from times long past, so why not provide them with the capa-
bility of using 4D-addressing when entering messages? To cover
that, Yuck! provides a facility to output FIDOUSER.LST-style
files. In that case, you must have an external sort program able
to process fixed-length, ASCII only input files; Ben Baker's QSORT
will do nicely (thanks, Ben). In a pinch, even the DOS "SORT"
command will do. The looks of the resulting file is approximately
like the following example (note: lines have been shortened to fit
the page):
Blach, Johannes 2:310/11.111
Homrighausen, Joaquim 3:632/308
Janssens, Peter 2:512/1
Kasza, Felix 2:2/3
Kasza, Felix 2:310/11
Well, you get the notion. Now, as the sucker who has to
create the pointlist in our region, several things griped me.
First, I had to consider the few BinkleyTerm LoTek nodes, probably
leftovers from centuries long past. Second, MakeNL provides a
great many features facilitating generation of a pointlist, but it
will definitely not deal with the (non-standard) "Point" keyword.
Third, I thought it ridiculous to generate a pointnet for every-
body else and then having to manually edit my own pointlist.
Well, the result is Yuck!. What Yuck! means is listed in the
title; the second meaning will be obvious when you look at the
source ... yuck!
WARNING: Felix A. Kasza assumes no responsibility, nor lia-
bility, nor anything else, for direct or consequential or whatever
damages arising from looking at the source code to Yuck!. This
includes, but is not limited to, soiled keyboards.
What exactly does Yuck! do? Well, first it reads its control
file. In there, you probably have defined mappings which link a
pointnet number to a specific bossnode. Then, it slurps the
entire pointlist (which, of course, is limited in size) and pro-
ceeds with killing all the entries which do not refer to a point.
The only ones left after that phase will be the node lines which
in reality are points.
As it processes the pointlist, Yuck! remembers which fakenet
a certain point entry is associated with. This is a necessity for
the next phase, during which the pointnet numbers are remapped to
full 4-dimensional addresses.
Yuck! 2.00/a-1 02-10-90 Page 3
At this time, Yuck! will read in a FIDOUSER.LST-compatible
format file, if such a file has been defined in Yuck!'s control
file. As this format does not nearly contain enough information
for a complete point entry, Yuck! fakes the missing information
(system name and location may be set in YUCK.CTL, baudrate and
flags are hardcoded to 2400,MO). Entries which do not refer to a
point (i. e., have a point number of 0 or none at all) are dis-
carded during the scan of the input file.
Finally, the result is sorted by Zone, Net, Node and Point,
and Yuck! starts to go over the resulting list in a sequential
manner. After this step, the nodelist is opened, and Yuck! starts
to process it sequentially. While doing that, it tracks the cur-
rent zone, region, host and node. If a node's (or host's, or
region's, or zone's) entry is needed, it is output to the target
file, and the points off that system are searched in the internal,
pre-processed pointlist so as to write their data to the target
file, too. In the case of a FIDOUSER.LST-compatible output file,
an additional step is involved; after writing a temporary file, an
external sort is called to process this temporary file into the
final output.
But Yuck! does more than that: if you are generating an old-
style pointlist (like the first example given), Yuck! will option-
ally include a prologue and an epilogue file, merge all nodes from
selected regions, zones, or nets into the output file, and gener-
ally make a nuisance of itself.
What it boils down to is that a boss can generate a region or
zone list into which the various other nodes' pointlists are
already merged -- ideally suited to nearly-points who shy from
using a full nodelist. It is also useful for people like Peter
Janssens (hi, Peter) who get a regularly updated FIDOUSER.LST-com-
patible file listing all the points in their region.
Well, that's it, basically. Yuck! adds a truckload of other
features, too. FroDo, for example, likes to have either the real
phone number listed, or none at all. This can be accomplished by
putting a special keyword in the control file. Then, many people
list their own points in a file named FDPOINT.PVT. In this file,
only node entries are allowed (no "Point" keyword), and FroDo
automagically treats the systems listed as points off your box.
My fakenet is 3210, for example, but I have my points listed in
FDPOINT.PVT. To avoid a duplicate listing or to reduce the
pointlist's size, I can instruct Yuck! to remove my own fakenet
from the output file. (On the other hand, I could just kill
FDPOINT.PVT and have FroDo get my point's data from the Yuck! out-
put file).
Yuck! 2.00/a-1 02-10-90 Page 4
Additional goodies are that on request, Yuck! will auto-
magically determine the highest numbered input files (if you name
them something.###, ### being the day number); it is able to use
the input file's extension as the extension for the output file;
in the same fashion, it will, if not disabled by you, search for
the nodelist.### to use; and as final gimmick, it is able to
remove the input file(s) after processing.
There is one additional feature which is only necessary in
very special situations; check appendix A if your entire net
shares one pointnet number, or if you actually have more than one
real net sharing one pointnet (jeeez!), or if it just interests
you.
In the package you'll find a few example files; when looking
at them, keep in mind that I am 2:310/11.0, and that my pointnet
is 3210/xxx (to others only -- all my points run smart software).
Oh, a last one before I finish: Yuck! will accept exactly ONE
command line argument, no switches or other fancy stuff. The com-
mand line argument is the (optional) control file name; if not
specified, Yuck! looks for a default control file by the name of
YUCK.CTL. I know that it doesn't have a lot of bells and whis-
tles, but for me it does the job.
Oh, by the way, should you be interested in the type and syn-
tax of control file commands Yuck! accepts, see appendix D.
Address inquiries to:
Felix A. Kasza voice: +43-222-804244011
p/a Computer/Laser-Systems mail: 2:310/11.0
191, Hetzendorfer Strasse fax: +43-222-804244070
A-1130 Vienna, Austria
Yuck! 2.00/a-1 02-10-90 Page 5
Appendix A: The Tim_Net Kludge
In net 1:109, there is only one pointnet for all the
bossnodes. This is the most crazy setup I ever saw in my entire
life, and I rather strongly felt it should be changed as soon as
possible. After a bit of conversation with Tim Jasionowski, net
109's pointlist keeper, I have to admit that if nothing else, the
setup chosen there has at least an undeniable entertainment value.
OK, I thought I'd try to come up with something, and the result is
the new control file keyword "Tim_Net". What does it do? Simple:
A point in net 1:109 has a pointlist entry like this:
,1,System_name/BOSSNODE,...
... or maybe even like this:
,1,System_name:BOSSNET/BOSSNODE,...
BOSSNODE is in this case the boss' node number, with BOSSNET
being the boss' net number. Yes, you guessed it: when tim_net is
enabled, the boss node number (or full address) will be taken from
the system name: Yuck! looks for the last '/' resp. ':' and
interprets the rest as a system name.
To use the Net_109 feature, adapt your YUCK.CTL so that it
will use the following parameters:
; ... usual filename etc. garbage ...
; note NO kill statement
; don't forget this one:
tim_net 109 ; this sets the default "real" net number to
use
tim_fake 30039 ; a fakenet to check for "/" and ':'
tim_fake 30040 ; another one
; note: "myZone" will be applied as the point's zone; 109 will be
; used for all points with a name like "name/#"; others will have
; to have a net number in the system name. Only fakenets 30039
; and 30040 will be eligible for un-kludging.
Yuck! 2.00/a-1 02-10-90 Page 6
Appendix B: Licensing Information
Militantly Public Domain.
Yuck! 2.00/a-1 02-10-90 Page 7
(This page intentionally left non-blank.)
Yuck! 2.00/a-1 02-10-90 Page 8
Appendix C: Upgrade Instructions and Release Notes
WARNING: VERSION 2.00 MAY REQUIRE CONTROL FILE CHANGES IF
UPGRADING FROM 1.71 OR EARLIER.
To upgrade from version 1.71, start here:
Remove the "maxpts" statement from yuck.ctl. Yuck! 1.80
and up use a very different method for storing entries
internally, which is both faster and more stable. As a
consequence, room for point entries is allocated as needed
(or until the available memory is used up). Amiga users
may notice a slight decrease in the maximum number of
points the program can handle (on the order of 3.5%),
while MS-DOS Yuck! users should have slightly more room
available (some 13.3%).
To upgrade from version 1.81, start here:
The Net_109 kludge has been completely reworked. Please
check the descriptions for "tim_net" and "tim_fake" below.
Version 2.00/b-2 release notes:
Sebastian Scala (2:316/4) pointed out a bug in the
"include net" logic. Yuck! would not include the Zone
entry, thus appending included nets to the default zone in
case no intervening region was pulled in. This error has,
of course, been rectified. While I was at it, I also
decided not to strip Pvt, Hold or Down nodes from included
networks (or regions, or zones).
Version 2.00/a-1 release notes:
A few major improvements were needed. "Include" is now
able to include nets; "net_109" has been totally rewritten
and is now (in a greatly expanded version) available as
"tim_net" and "tim_fake". "Include" now accepts an
optional "-h" flag after the zone/region/net number; if
present, only the header (up to the next
Zone/Region/Host/Hub keyword encountered during the
nodelist scan) is included.
Version 1.81 release notes:
No changes compared to 1.80/d-2 except for the change in
the version number. this release will be submitted to
SDS. (Thanks to Rudi Van Vishout - his efforts are
greatly appreciated!)
Version 1.80/d-2 release notes:
Fixed a potentially very serious bug noted and reported by
Max Hantsch (thanks!). It had to do with uninitialized
array indices which shouldn't have been there in the first
place, and with brain damage on the author's end.
Yuck! 2.00/a-1 02-10-90 Page 9
Version 1.80/d-1 release notes:
The maximum number of "map" statements in the control file
is now limited by available memory or 6552 items, whatever
is smaller. Control file change: upgrade instructions for
versions prior to 1.71 have been removed. If you are
using one of the pre-historic versions of Yuck!, well,
tough luck.
Version 1.80 release notes:
Peter Janssens reported a serious bug which occurred when-
ever illegal entries (network 0) were fed to Yuck! and
more than 256 entries were read from the input files.
This bug is now fixed, and while I was at it, I converted
Yuck! to use singly linked lists internally. Thanks to
johi for prodding me to rise above my laziness. Thanks to
the new (finally dynamic) memory management, the "maxpts"
command is now obsolete.
Version 1.71 release notes:
Removed my beautiful, fast, handcrafted nodelist scanner
from the distribution archive to reduce confusion.
Switched to zip format for the distribution archive. Sub-
mitted YUCK_171.ZIP to Rudi Van Lishout for hatching into
SDS.
Version 1.70 release notes:
Actually, this version adds no features at all. It does,
however, feature an ultra-fast nodelist scanner, which
beats MsgTrack's to hell and gone. Btw, MsgTrack only
scans the keyword and the node number, while mine parses
and stores the entire line ...
Version 1.61 release notes:
Fixed a nasty mite in getLine(). While blank lines are
allowed in input files (and correctly caught, usually), a
line with only whitespace at its start was not.
Version 1.60 release notes:
The amiga CLIST output format is now supported. See
"clist" for details. "Cronly", "lfonly" and "crlf" have
been expanded; they now accept "clist" as a valid argu-
ment. CLIST format is now also supported for input files,
as is the fd199b format. See "infd199b" and "infile" for
more information.
Bug fixes: line endings in "prolog" and "epilog" files
were not handled properly. This is fixed.
Minor improvement: Yuck! now uses 2K file buffers. This
should help the speed freaks out there.
Yuck! 2.00/a-1 02-10-90 Page 10
Version 1.50 release notes:
This version was cleaned up somewhat and ported to the
Amiga by Max Hantsch and Martin Laubach. Most of the
changes are internal; small model, for example, is no
longer supported. My thanks go to Max and mjl for their
efforts, especially those directed towards getting me to
write better code. In addition to all that internal work,
we added a new config verb, mainly for Amiga users - see
"lfonly", "cronly" and "crlf" below. If you generate a
FIDOUSER.LST output file on an Amiga, do not use "$$$" in
the file name; the execute function will barf on that.
Another Amiga special: clist supports pointnet entries
looking like ",3,->", where all the boss info is replaced
by the "->". This directs clist to get the info from the
nodelist. Since Yuck! always refers to the main nodelist
anyway, we decided to allow that syntax as well (in
"infile" files only).
More notes on 1.50:
This was the worst night I've had in a looong time. Max
Hantsch & mjl, the Amiga guys, complained about a lot of
features; them people is getting more and more ungrateful
every week. Anyway, the entire output file write logic
has been yanked and rewritten. The main consequence is
that a long-standing bug is now gone; in "-a" mode with
included regions, the "Zone,..." entry for that or these
regions didn't get output. Now I just want to know how
many new bugs I introduced with this rewrite :-(
Version 1.43 release notes:
1.43 is the result of another suggestion from Stig Jacob-
sen (thanks, Stig). An unspecified or empty system name
will now cause Yuck! to copy the sysop name field to the
system name entry when scanning a FIDOUSER.LST-style input
file. In addition to that, Yuck! now shows information
about available memory when started; this should help
finding a decent "maxpts" value, and it satisfied my
curiosity.
Version 1.42 release notes:
Thanks to Stig Jacobsen (2:231/16) for advising me of
problems with the FIDOUSER.LST-scanner. Versions 1.41 and
below started scanning for an address at column 42; this
release begins at column 38. Also, I had a serious bug
in there: when no zone was specified in the file being
read as userlist, Yuck! did =not= insert the "myzone"
value from the control file. This has been fixed.
Version 1.42 was released onto SDS (area SDSFRONT) as
YUCK_142.PAK.
Yuck! 2.00/a-1 02-10-90 Page 11
Version 1.41 release notes:
If you enable "keeppvt", Yuck! will not kill "Pvt,..."
entries from a MakeNL-style input file. See "keeppvt" for
more info.
Version 1.40 release notes:
This release adds another output format, the FIDOUSER.LST
style. See "userout", "sort" and "tempsort" below for
details.
Version 1.33 release notes:
When I released 1.32, I thought I had "got it right now".
well, I'm used to being wrong. Yuck! made a mess of
itself when the control file contained comment lines with
whitespace before the semicolon. Only pure comment lines
created this problem, and only if there was whitespace
before the semicolon. Needless to say, this has been
fixed. Thanks to Alexander Holy (yes, that's his real
name) for pointing this one out to me.
Version 1.32 release notes:
I think I got it right now. The last one was really
braindamaged; I tried to resolve an unspecified input file
name to a fully-qualified filename with a numeric exten-
sion (for infile and userlist) even though only one of
them had been specified. This positively sucks. My
thanks to Andi Polz who pointed this out to me. At the
same time, I expanded the include statement. To include a
region, it now requires you to specify the zone ("include
region 2:31"). The zone inclusion syntax remains
unchanged ("include zone 2").
Version 1.31 release notes:
Fixed a bloody bug. When writing the "oldnet" list,
entries with "Host", "Hub", "Down" etc. keywords were
ignored, and their points didn't get written. Note on the
nodelist scanner: the nodelist scan during the oldnet
generation is stopped if there are no more points to be
written. In other words, if you have points without a
bossnode in the nodelist, the entire nodelist will be
processed since Yuck! can't know whether the boss system
might be listed later (mainly for use with customized
nodelists, I need that for my private nets).
Version 1.30 release notes:
Bug fix - "include"s were always executed, regardless of
whether "-a" was specified with "oldnet" or not.
Yuck! 2.00/a-1 02-10-90 Page 12
New feature - "userlist [-k] fidouser.lst" will process a
file in the FIDOUSER.LST format as an input file. This
may be in addition to or instead of a regular pointnet
input file. Check out "userlist" below. "Sysname" and
"sysloc" will set the system name and the location field
for points added from FIDOUSER.LST; defaults are "Some
point" and "Somewhere", respectively. The baud rate and
flags defaults are hard coded in the source; see the
POINT* #defines.
Yuck! 2.00/a-1 02-10-90 Page 13
Appendix D: Control File Commands
Note:
Data for non-point systems is =always= taken from the
nodelist. If such data cannot be found, well, then you
have a problem. To quote Joaquim H. Homrighausen, the
well-known author of the renowned FrontDoor idle process:
"Well, if you have THAT problem, well, tough luck!"
Comments are allowed anywhere. Blank lines are ignored;
trailing spaces are ignored; everything after a semicolon
is ignored.
INPUT FILE COMMANDS
infile [-k] [path\]basename[.ext] OPTIONAL
Here you define the file to process. If an explicit
extension is not present, the file having the highest-
numbered extension will be used. The optional "-k"
removes the input file after successful processing. Note:
Yuck! does not properly handle the case where you have
something like NODELIST.363 and NODELIST.005 in your
nodelist directory at the same time. Then again, why
should =I= care?
Additional note: "infile" supports clist-style files,
where the info for non-point systems is replaced by a "-
>", implying a referral to the current nodelist.
infd199b [-k] [path\]basename[.ext] OPTIONAL
This verb is provided for the convenience of those who
wish to merge an output file created in a prior Yuck! run
with other input files. It does what its name says: it
reads a pointnet file in FD-1.99b format.
userlist [-k] [path\]basename[.ext] OPTIONAL
Basically, the same rules as for "infile" apply. However,
the file to use is interpreted as a FIDOUSER.LST-style
text file. You must have either an "infile" or a
"userlist" statement.
nodelist [path\]basename[.ext] MANDATORY
This defines where the program will find your current
distribution (St. Louis format) nodelist. It needs that
to pull in information about nodes. Usually, you will not
specify an extension, and the highest-numbered
basename.NNN will automagically be selected. Note: be
careful at year's end. If you have a NODELIST.363 and a
NODELIST.005 in your nodelist directory, it's your own
fault.
CONFIGURATION OPTIONS
Yuck! 2.00/a-1 02-10-90 Page 14
unpublished {yes|no} OPTIONAL
If set to no, point phone numbers will not be replaced
with the string "-Unpublished-". Default is "yes". Use
"no" only if all the phone numbers in the input file are
real ones (not the bosses'), or if any unknown ones
already read "-Unpublished-" in the input file.
keeppvt {yes|no} OPTIONAL
If set to yes, point entries marked "Pvt,..." are not
killed when a MakeNL-style input file ("infile") is
processed. The default is to remove such entries
("keeppvt no").
zone <your_zone> OPTIONAL
The corresponding Zone entry from the highest numbered
nodelist will be inserted at the start of the resulting
file. No Zone entry will be created if there already is
one in the input file. The "zone" setting is also used to
determine certain other defaults.
sysname Desired system name OPTIONAL
By default, Yuck! will, when scanning a FIDOUSER.LST-style
file, set the system name field to the sysop's name. This
can be overridden with the "sysname" command. Specifying
no parameter to this entry tells Yuck! to use the default
(the sysop name).
sysloc Desired location OPTIONAL
Overrides the "Somewhere" default for the location field
for any points read in from a "userlist".
tempsort [path\]tempname[.ext] OPTIONAL
The name of the temporary file for a "userout" list.
Yuck! will create this file and then use an external sort
to generate the final output file. If no extension is
present, the current nodelist's one is appended. If no
"tempsort" at all is specified, a default of
"yucktemp.$$$" will be used. The "tempsort" name is what
gets substituted into the sort sommand line instead of the
string "{in}". Obliging guy I am, right?
*** Note for Amiga users ***
The "tempsort" filename will default to "Yuck!.temp" in
Amiga mode.
maxpts #of_pts_expected PLEASE DELETE - OBSOLETE
Yuck! 2.00/a-1 02-10-90 Page 15
PROCESSING OPTIONS
kill <your_pointnet> OPTIONAL
FrontDoor users usually keep their own pointnet in a
separate file, called FDPOINT.PVT. If their pointnet is
duplicated in the input file, this statement will allow
them to remove their own pointnet from the output file.
This statement may occur several times.
Note: if you run a pointlist in the FD 1.99b format (see
"fd199b" keyword below), you will =not= want to kill your
pointnet, or you'll have no points anymore.
map <pointnet> <bossnode> OPTIONAL
This is the real meat of the program. If a Host entry
with a matching net number is found in the input file,
the real node's data is pulled from the highest-numbered
nodelist and inserted into the output, and the program
starts converting plain node entries to Point lines, until
another keyword with a higher rank than Hub is
encountered.
New: the number of map statements, limited to 32 in pre-
1.80/d-1 versions, is now unlimited. Implementation-
dependent maxima may be present. For the MS-DOS version,
that's 6552 map items or available memory, whichever you
run out of first.
net_109 OBSOLETE
See "tim_net" and "tim_fake" below.
include ["-h"] {"zone"|"region"|"net"} number MULTIPLE, OPTIONAL
If you create a pointnet file with oldnet and want an
entire net, region or zone included (to allow points to
run without a full nodelist), this one is for you. It is
*required* if you use the "-a" option with "oldnet" but
may appear more than once. Any "include" statement will
be ignored if you do not have an "oldnet -a" in your
control file. The 'number' mentioned above is either a
zone number ("include zone ..."), a zone- and a region
number ("include region ..."), or a zone- and network
number ("include net ..."). Examples: "include zone 1"
or "include region 2:48" or "include net 2:313". The "-h"
flag, if present, directs Yuck! only to include entries up
to the next zone, region, host or hub entry encountered in
the nodelist. That might be useful to generate a small
nodelist which still contains zonegates, regional inbound
gates etc.
Yuck! 2.00/a-1 02-10-90 Page 16
userkill z:n/f MULTIPLE, OPTIONAL
Sometimes, when including a file in the FIDOUSER.LST-
format, you will want to remove the points of certain
bossnodes from the output. That's what "userkill" does:
any points of that bossnode will not be processed.
Useable for removing your own points which you might
already have listed elsewhere (FDPOINT.PVT comes to mind).
Effectively, "userkill" does the same for FIDOUSER.LST-
style input files that "killnet" does for MakeNL-style
files.
tim_fake fakenet MULTIPLE, OPTIONAL
This keyword is required if you also use the tim_net verb.
It sorta registers fakenet numbers for later special
processing, as described in appendix A. See also
"tim_net" below.
tim_net netnumber OPTIONAL
This keyword replaces the old net_109 kludge. It is
intended for pointlists where multiple bossnodes share a
common pointnet. When you activate this feature, all
fakenets are examined against the list of netnumbers
specified in "tim_fake" statements. If a match is made,
the point's system name is examined for a match to either
"somename/#" or "somename:#/#", where "#" stands for any
sequence of decimal digits evaluating to less than 64K.
If this step also produces a hit, the entry under
consideration is checked further: if it is of the form
listed first ("somename/#"), it is remapped to
myzone:netnumber/#.point with "myzone" coming from the
"zone" statement, "netnumber" from the "tim_net" line, and
"#" from the system name. If, on the other hand, the
system name is alike to "name:#/#", the new address will
be myzone:#/#.point, with "#/#" being taken from the
system name.
tim_trim {yes|no} OPTIONAL
If you use Yuck! to parse point system names (see tim_net
and tim_fake above), Yuck! will by default remove the
address info from the end of the system name. Use
"tim_trim no" to avoid this.
OUTPUT FILE COMMANDS
fd199b [path\]targname[.ext] OPTIONAL
FrontDoor 1.99b and up support a different pointnet
format, which is also capable of supporting multiple
bossnodes. The old format is, of course, still supported.
The new format looks like this:
Yuck! 2.00/a-1 02-10-90 Page 17
Boss,3:632/308
,1,JoHo's_Turf,<...>
Boss,26:1305/100
,1,JoHo's_Turf,<...>
Boss,7:48/20
,1,JoHo's_Turf,<...>
Note the absence of Zone, Region and Host keywords and the
full address of the boss nodes. FroDo will automagically
pull required info from the main nodelist when it's
needed. One of the main advantages of this format is that
you avoid duplicate boss node entries in your compiled
nodelist. While this was no problem with the old format
(since the boss' info was pulled from the main nodelist
anyway), it was pretty crufty. Regarding the output file
name, check out "oldnet" below.
oldnet [-a] [path\]targname[.ext] OPTIONAL
This verb sets the output file name and path. If you
don't specify an extension, it will be taken from the
input file name; that's the way to go if you want a
daynumber-extension for the output file. If there is a
dot in the targname, the extension is not modified in any
way. If you include the "-a" option, then the entire
range specified by an "include" statement will be placed
into the output file. Ideally suited to points - the boss
generates a regional list and robots it to those among his
points who do not want to run a full nodelist.
clist [path\]basename[.ext] OPTIONAL
This basically generates an oldnet-style output file.
However, it does =not= perform a nodelist scan. Rather,
it will replace all info for nodes which the Amiga CLIST
nodelist compiler will find in the current nodelist (Zone,
Host, Node) with the string "->" (as in "Host,310,->").
"Clist" does not know about "include"d zones/regions or
about the "-a" flag; the contents of its output file will
offer the same amount of information that can be found in
a list of the "fd199b" type.
userout [-a] [path\]basename[.ext] OPTIONAL
This command generates a file in the well-known
FIDOUSER.LST format. This file, by default, contains
=only= points and is intended to be used as a secondary
pointlist in, say, msged. If you include the "-a" switch,
it behaves similarly to the "oldnet" command, i.e., it
includes the sysop names of the selected or included
regions and zones. "Userout" requires an external sort to
work; see the "sort" sommand for additional information.
Yuck! 2.00/a-1 02-10-90 Page 18
sort command line for sort {in} {out} OPTIONAL
"Sort" is only required if you want to generate a
FIDOUSER.LST style output file with the "userout" command.
In that case, Yuck! requires an external sort to rearrange
the lines in alphabetical order. Ben Baker's "qsort" pro-
gram will do nicely, and in the absence of a "sort" state-
ment, Yuck! will default to it. What happens when Yuck!
tries to generate the output file is actually quite
simple: a temporary file, unsorted, is generated. Any
file having the final output file name is then deleted to
avoid any trouble ("file already exists" etc.). Then, the
literal strings "{in}" and "{out}" in the command line
are substituted by the temporary and final file names,
respectively. The sort program is then executed, and upon
return to Yuck!, the existence of the final output file is
checked. If it's missing, Yuck! reports an error. The
temporary file is then deleted, and we're done. The
default command line is "qsort {in} {out}", by the way.
This requires QSORT.EXE to be in the search path. You may
also call a batch file to do the dirty work; in this case,
you =must= provide a command line similar to this one:
"command /c mybatch {in} {out}".
*** Note for Amiga users ***
The default command to invoke the external sort is changed
for the AMIGA version: "sort {in} {out}".
OUTPUT FILE OPTIONS
lfonly {fd199b|oldnet|userout|clist} MULTIPLE, OPTIONAL
cronly {fd199b|oldnet|userout|clist} MULTIPLE, OPTIONAL
crlf {fd199b|oldnet|userout|clist} MULTIPLE, OPTIONAL
By default, all of Yuck's output file lines are terminated
with a CR/LF (carriage return/line feed) sequence.
Especially in Amiga environments, this seems to be
undesirable at times. These three config options let you
tailor Yuck!'s output to your specific needs. If you
wanted, e. g., the oldnet-style output file lines to be
terminated with line feeds only, you'd put something like
"lfonly oldnet" into yuck.ctl. The default for all four
output file formats is to terminate lines with both a
carriage return and a line feed. Note: when reading
input files, carriage returns are ignored, and lines are
assumed to end with a line feed character.
prolog prolog.ext OPTIONAL
If used in the control file, the entire contents of the
specified file will be inserted into the output file(s),
just below the fixed header giving the version number of
Yuck! used to create the file. In theory, nothing unto-
ward should occur if the prolog file can't be opened, but
you know, enithink that kan go wronk wil go wronk.
Yuck! 2.00/a-1 02-10-90 Page 19
epilog epilog.ext OPTIONAL
If used in the control file, the entire contents of the
specified file will be inserted into the output file(s)
after all the other junk Yuck! will write to them. If the
epilog file doesn't exist, one of two things might happen:
a) nothing, that's what I intended or b) anything, which
is just tough luck.